package com.teamin.service.impl.wx;

import com.alibaba.fastjson.JSONObject;
import com.teamin.utils.Utils;
import com.teamin.web.Evn;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 个人消息通知 公众号
 * 
 * @author qfu
 *
 */

@Component
public class WXMPTemplate extends WXTemplate {

	@Value("${template_mp.new_task}")
	public String NEW_TASK ;//新任务模板
	@Value("${template_mp.assigner_change_task}")
	public String ASSIGNER_CHANGE_TASK ;//新任务
	@Value("${template_mp.state_change_task}")
	public String STATE_CHANGE_TASK ;// 关注任务状态发生变更
	@Value("${template_mp.circle_progress}")
	public String CIRCLE_PROGRESS ;// 圈子进展
	@Value("${template_mp.task_delete}")
	public String TASK_DELETE ;// 删除任务
	@Value("${template_mp.task_remind}")
	public String TASK_REMIND ;// 任务提醒
	@Value("${template_mp.task_at}")
	public String TASK_AT ;// @功能


	/**
	 * 任务分派提醒
	 * {{first.DATA}}
	 * 任务号：{{keyword1.DATA}}
	 * 任务类型：{{keyword2.DATA}}
	 * 执行人：{{keyword3.DATA}}
	 * 分派人：{{keyword4.DATA}}
	 * 分派时间：{{keyword5.DATA}}
	 * {{remark.DATA}}
	 */
	public JSONObject taskAssignerChangeTemplate(String first,String taskName,String taskType,String assigner,String controlUser,String openId,Long circleId ,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;
		jsdata.put("first",new TemplateValueColor(first));
		jsdata.put("keyword1",new TemplateValueColor(taskName)) ;
		jsdata.put("keyword2",new TemplateValueColor(taskType)) ;
		jsdata.put("keyword3",new TemplateValueColor(assigner)) ;
		jsdata.put("keyword4",new TemplateValueColor(controlUser)) ;
		jsdata.put("keyword5",new TemplateValueColor(Utils.getFormatDateTime(System.currentTimeMillis()))) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务详情")) ;
		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("template_id",ASSIGNER_CHANGE_TASK) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/detail?taskId="+taskId+"&circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;

		return json ;
	}

	/**
	 * 新任务提醒
	 * {{first.DATA}}
	 * 描述：{{keyword1.DATA}}
	 * 工作量：{{keyword2.DATA}}
	 * 备注：{{keyword3.DATA}}
	 * 时限：{{keyword4.DATA}}
	 * 来自：{{keyword5.DATA}}
	 * {{remark.DATA}}
	 *
	 */
	public JSONObject createNewTaskTemplate(String first ,String taskName,String keyword4,String keyword5,String openId,String url,Long circleId,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;
		jsdata.put("first",new TemplateValueColor(first)) ;
		jsdata.put("keyword1",new TemplateValueColor(taskName)) ;
		jsdata.put("keyword4",new TemplateValueColor(keyword4)) ;
		jsdata.put("keyword5",new TemplateValueColor(keyword5)) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务详情")) ;
		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("url",url) ;
		json.put("template_id",NEW_TASK) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/detail?taskId="+taskId+"&circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;

		return json ;
	}

	/**
	 * 任务完成
	 * first 标题
	 * keyword1 任务名称
	 * @param keyword2 任务结果
	 * @return
	 */
	public JSONObject taskFinish(String first,String keyword2,String openId,String url,Long circleId ,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;

		jsdata.put("first",new TemplateValueColor(first));
		jsdata.put("keyword1",new TemplateValueColor(keyword2)) ;
		jsdata.put("keyword2",new TemplateValueColor("完成")) ;
		jsdata.put("keyword3",new TemplateValueColor(Utils.getFormatDateTime(System.currentTimeMillis()))) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务详情")) ;

		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("url",url) ;
		json.put("template_id",STATE_CHANGE_TASK) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/detail?taskId="+taskId+"&circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;
		return json ;
	}

	/**
	 * {{first.DATA}}
	 * 待办内容：{{keyword1.DATA}}
	 * 待办时间：{{keyword2.DATA}}
	 * {{remark.DATA}}
	 */
	public JSONObject commentAtString(String first,String taskName,String finishTime,String openId,String url,Long circleId ,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;

		jsdata.put("first",new TemplateValueColor(first));
		jsdata.put("keyword1",new TemplateValueColor(taskName)) ;
		jsdata.put("keyword2",new TemplateValueColor(finishTime)) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务详情")) ;

		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("url",url) ;
		json.put("template_id",TASK_AT) ;
		json.put("appid", Evn.SMALL_APP_ID) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/detail?taskId="+taskId+"&circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;
		return json ;
	}

	/**
	 * {{first.DATA}}
	 * 项目名称：{{keyword1.DATA}}
	 * 责任人：{{keyword2.DATA}}
	 * 确认人：{{keyword3.DATA}}
	 * 计划完成时间：{{keyword4.DATA}}
	 * 进展状态：{{keyword5.DATA}}
	 * {{remark.DATA}}
	 */
	public JSONObject userTaskState(String circleName,String progress,String creater,String lastTime,String openId,Long circleId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;
		//jsdata.put("first","你所在的圈子任务状态");
		jsdata.put("keyword1",new TemplateValueColor(circleName)) ;
		jsdata.put("keyword2",new TemplateValueColor(creater)) ;
		jsdata.put("keyword3",new TemplateValueColor(creater)) ;
		jsdata.put("keyword4",new TemplateValueColor(lastTime)) ;
		jsdata.put("keyword5",new TemplateValueColor(progress)) ;
		jsdata.put("remark",new TemplateValueColor("点击查看圈子详情")) ;
		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		//json.put("url",url) ;
		json.put("template_id",CIRCLE_PROGRESS) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/list?circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;

		return json ;
	}


	/**
	 * 删除任务模板
	 * {{first.DATA}}
	 * 任务名称：{{keyword1.DATA}}
	 * 操作人员：{{keyword2.DATA}}
	 * 删除时间：{{keyword3.DATA}}
	 * {{remark.DATA}}
	 *
	 */
	public JSONObject deleteTask(String keyword1,String keyword2,String keyword3,String openId,String url,Long circleId ,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;
		jsdata.put("keyword1",new TemplateValueColor(keyword1)) ;
		jsdata.put("keyword2",new TemplateValueColor(keyword2)) ;
		jsdata.put("keyword3",new TemplateValueColor(keyword3)) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务列表")) ;
		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("url",url) ;
		json.put("template_id",TASK_DELETE) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/list?circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;

		return json ;
	}

	/**
	 * 任务即将到期通知
	 * {{first.DATA}}
	 * 任务名称：{{keyword1.DATA}}
	 * 开始时间：{{keyword2.DATA}}
	 * 结束时间：{{keyword3.DATA}}
	 * 剩余时间：{{keyword4.DATA}}
	 * {{remark.DATA}}
	 */
	public JSONObject remindTask(String taskName,Long planfinisTime,String openId,String url,Long circleId ,Long taskId) {
		JSONObject json = new JSONObject() ;
		JSONObject jsdata = new JSONObject() ;
		jsdata.put("keyword1",new TemplateValueColor(taskName)) ;
		jsdata.put("keyword2",new TemplateValueColor(Utils.getFormatDateTime(System.currentTimeMillis()))) ;
		jsdata.put("keyword3",new TemplateValueColor(Utils.getFormatDateTime(planfinisTime))) ;
		jsdata.put("keyword4",new TemplateValueColor(Utils.getSurpTimeString(planfinisTime))) ;
		jsdata.put("remark",new TemplateValueColor("点击查看任务详情")) ;
		json.put("data",jsdata) ;
		json.put("topcolor","#FF0000") ;
		json.put("touser",openId) ;
		json.put("url",url) ;
		json.put("template_id",TASK_REMIND) ;
		JSONObject wxsmall = new JSONObject() ;
		wxsmall.put("appid", Evn.SMALL_APP_ID) ;
		wxsmall.put("pagepath", "pages/detail?taskId="+taskId+"&circleId="+circleId) ;
		json.put("miniprogram",wxsmall) ;

		return json ;
	}

}
